/*
 * @Date: 2025-07-17 16:35:14
 * @Auth: 463997479@qq.com
 * @LastEditors: 873768511@qq.com
 * @LastEditTime: 2025-11-07 16:53:10
 * @FilePath: \corpus\src\util\index.ts
 */
/**
 * 计算任务超时分钟数
 * @param startTime 开始时间(ISO格式字符串或Date对象)
 * @param now 可选参数，当前时间(默认取客户端时间)
 * @returns 超时分钟数(负数表示未超时)
 */
export function calcOverdueMinutes(startTime: string | Date, now: Date = new Date()): number {
  const start = new Date(startTime);
  const diffMs = now.getTime() - start.getTime();
  return Math.floor(diffMs / (1000 * 60));
}

/**
 * 格式化超时时间为易读字符串
 * @param minutes 超时分钟数
 * @returns 如"已超时2天5小时30分钟"或"剩余1小时15分钟"
 */
export function formatOverdueTime(minutes: number): string {
  const absMins = Math.abs(minutes);
  const days = Math.floor(absMins / 1440);
  const hours = Math.floor((absMins % 1440) / 60);
  const mins = absMins % 60;

  let result = [];
  if (days > 0) result.push(`${days}天`);
  if (hours > 0) result.push(`${hours}小时`);
  result.push(`${mins}分钟`);

  return minutes >= 0 ? `${result.join('')}` : `剩余${result.join('')}`;
}